<?php

class myUser extends sfGuardSecurityUser
{
  /**
   *  
   */
  public function esCliente()
  {
    $id = $this->getGuardUser()->getPrimaryKey();
    $cliente = Doctrine_Core::getTable('Cliente')->findOneByUsuarioId($id);
    if($cliente == null)
      return false;
    
    return true;
  }

  /**
   * 
   */
  public function getCliente()
  {
    //$id = $this->getGuardUser()->getPrimaryKey();
    //$cliente = Doctrine_Core::getTable('Cliente')->findOneByUsuarioId($id);

    /*
    if(null != $cliente)
      return $cliente;
    else
      return null;
    */
    //return $cliente;

    return $this->getGuardUser()->getCliente();

  }
  
  /**
   * Devuelve true en caso de que el usuario tenga un carrito,
   * lo cual ocurre siempre que el usuario haya seleccionado ya un producto
   * para agregar al carrito.
   * En caso contrario devuelve false.
   */
  public function tieneCarrito()
  {
      
      if($this->isAuthenticated())
      {
          //los nombres de los atributos en la sesion
          $nombres = $this->getAttributeHolder()->getNames();
          foreach ($nombres as $nombre)
              if(false !== strpos($nombre,'carrito'))
                      return true;
              
          return false;
      }
          
      
  }
  
  /**
   * Se devuelve el carrito de compras asociado a este usuario,
   * y devuelve false en caso contrario.
   */
  public function getCarrito()
  {
      if($this->tieneCarrito())
          return $this->getAttribute ($this->getUsername() . 'carrito');
      return false;
  }

}
